package com.itheima.HomeWork_day09;
/*
利用比较器进行比较
 */
import java.util.Iterator;
import java.util.TreeSet;

public class StuTest {

    public static void main(String[] args) {

        //创建集合,用于存储学生成绩
        TreeSet<StuScore> ss = new TreeSet<StuScore>(((o1, o2) -> {

            //指定比较规则
            //首先对总成绩进行比较(主要的比较条件)
            int result = o1.sum()-o2.sum();


            //其次对语文/数学一次进行比较(次要的比较条件)
            result = result == 0 ? o1.getChinese() - o2.getChinese() : result;
            result = result == 0 ? o1.getMath() - o2.getMath() : result;


            //最后对姓名进行比较
            result = result == 0 ? o1.getName().compareTo(o2.getName()) : result;

            //最后返回给result
            return  result;


        }));

        //创建学生对象
        StuScore s1 = new StuScore("ming", 98, 95, 96);
        StuScore s2 = new StuScore("gang", 90, 93, 86);
        StuScore s3 = new StuScore("deng", 92, 95, 97);
        StuScore s4 = new StuScore("feng", 90, 94, 93);

        //添加到集合中
        ss.add(s1);
        ss.add(s2);
        ss.add(s3);
        ss.add(s4);

        //遍历集合

        //利用迭代器进行遍历
        Iterator<StuScore> it = ss.iterator();
        while (it.hasNext()) {
            StuScore st = it.next();
            System.out.println(st.getName()+"-"+st.getChinese()+"-"+st.getMath()+"-"+st.getEnglish()+"总成绩为:"+st.sum());
        }

        System.out.println("================================================");

        //利用增强for进行遍历
        for (StuScore s : ss) {
            System.out.println(s.getName()+"-"+s.getChinese()+"-"+s.getMath()+"-"+s.getEnglish()+"总成绩为:"+s.sum());
        }

    }
}
